# 作业：
# 1、编写函数，从键盘输入一字符串，把其中的各个字符颠倒，标点符号不颠倒，例如，‘I enjoy reading!’，经过函数调用后变为‘inidata yojne I!’
# def keyboardInput(string):
#     string1 = ''
#     fuhao = ['!', '?', '+', '-']
#     index_ = []
#
#     for i in range(len(string)):
#         if string[i] in fuhao:
#             index_.append(i)
#         else:
#             string1 += string[i]
#     string1 = string1[::-1]
#     print(index_)
#     for i in index_:
#         string1 = string1[:i] + string[i] + string1[i:]
#     return string1
#
#
# print(keyboardInput('‘I ?enjoy reading!?+’'))

# 2、找出列表 a = [“hello”, “world”, “yoyo”, “congratulations”] 中单词最长的一个。
# def longest(list1):
#     str_long = ''
#     for i in list1:
#         if len(i) > len(str_long):
#             str_long = i
#     print(str_long)
#
#
# list1 = ['hello', 'world', 'yoyo', 'congratulations']
# longest(list1)
# 3、如果有一个列表 a = [1,3,5,7,11]，那么如何让它反转成 [11,7,5,3,1]，并且取到奇数位值的数字 [1,5,11]
# def func(a):
#     a = a[::-1]
#     for i in range(len(a)):
#         if i % 2 == 0:
#             print(a[i])
#
#
# a = [1, 3, 5, 7, 11]
# func(a)

# 4、输入一个包含若干任意数据类型的列表，输出该列表中等价于True的元素组成的列表，
# def func(list1):
#     list2 = []
#     for i in list1:
#         if i:
#             list2.append(i)
#     print(list2)
#
#
# list1 = [True, 1, 0, None, False, 15, [], (1,), {}]
# func(list1)
# 例如，输入[1,0,2,None,False,"a"]，输出[1,2,'a']
# 5、给你一个数组 nums 和一个值 val，你需要 原地 移除所有数值等于 val 的元素，并返回移除后数组的新长度。
# def func(nums, val):
#     list1 = []
#     for i in nums:
#         if i != val:
#             list1.append(i)
#     print(list1)
#     print(len(list1))
#
#
# nums = [1, 2, 3, 4, 5, 6, 7, 7, 8, 7, 8, 7]
# val = 7
# func(nums, val)

# 示例：
# 输入：nums = [3,2,2,3], val = 3
# 输出：2, nums = [2,2]
# 6、给定一个排序数组和一个目标值，在数组中找到目标值，并返回其索引。如果目标值不存在于数组中，返回它将会被按顺序插入的位置。
# 示例 1:
# 输入: nums = [1,3,5,6], target = 5
# 输出: 2
# 示例 2:
# 输入: nums = [1,3,5,6], target = 2
# 输出: 1
# 示例 3:
# 输入: nums = [1,3,5,6], target = 7
# 输出: 4
# def func(nums, target):
#     if min(nums) <= target <= max(nums):
#         for i in range(len(nums)):
#             if nums[i] == target:
#                 print(i)
#             elif target not in nums:
#                 nums.append(target)
#                 nums.sort()
#                 continue
#     elif target < min(nums):
#         print(0)
#     else:
#         print(len(nums))
#
#
# nums = [2, 3, 4, 5, 6, 8]
# target = 7
# func(nums, target)

# 7、给你一个下标从 0 开始的字符串 details 。details 中每个元素都是一位乘客的信息，信息用长度为 15 的字符串表示，表示方式如下：
# 前十个字符是乘客的手机号码。
# 接下来的一个字符是乘客的性别。
# 接下来两个字符是乘客的年龄。
# 最后两个字符是乘客的座位号。
# 请你返回乘客中年龄 严格大于 60 岁 的人数
#
# 示例 1：
# 输入：details = ["7868190130M7522","5303914400F9211","9273338290F4010"]
# 输出：2
# 解释：下标为 0 ，1 和 2 的乘客年龄分别为 75 ，92 和 40 。所以有 2 人年龄大于 60 岁
# 示例 2：
# 输入：details = ["1313579440F2036","2921522980M5644"]
# 输出：0
# 解释：没有乘客的年龄大于 60 岁。

# def func(details):
#     list2 = []
#     for i in range(len(details)):
#         if int(details[i][11:13]) > 60:
#             list2.append(details[i])
#     print(list2)
#
#
#
# details = ["7868190130M7522", "5303914400F9211", "9273338290F4010"]
# func(details)


# 8、写函数监测用户传入的对象（字符，列表，元组）的每一个元素是否有空内容
# def func(*x):
#     for i in x:
#         if len(i):
#             print(f"{type(i)}不是空")
#         else:
#             print(f'{type(i)}是特么空的')
#
#
# func('abc', [], (1,),'')

# 9、 随机生成20个学生的成绩; 判断这20个学生成绩的等级;
#  A：（90~100） B：（80~89） C：80以下
# import random
#
#
# def func():
#     A = 0
#     B = 0
#     C = 0
#     grade_list = []
#     for i in range(20):
#         grade = random.randint(1, 100)
#         grade_list.append(grade)
#     for i in grade_list:
#         if 90 <= i <= 100:
#             A += 1
#         elif 80 <= i <= 89:
#             B += 1
#         else:
#             C += 1
#     print(grade_list)
#     print(A, B, C)
#
#
# func()

# 10、编写一个用户登录函数（用户名密码提前设置）；
# 返回用户登录成功或者失败的结果；

# def func(input_user, input_pwd):
#     user = 'admin'
#     pwd = '123456'
#     if input_user == user and input_pwd == pwd:
#         print('登录成功')
#     else:
#         print("登录失败")
#
#
# input_user = input('请输入用户')
# input_pwd = input('请输入密码')
# func(input_user, input_pwd)
